// 1.封装一个Vue构造函数
function Vue(options) {
  // 将配置对象options中data的内容放在vm的_data中
  this._data = options.data
  // 开始数据代理,将_data中的数据拿出来放在vm身上
  for (let key of Object.keys(this._data)) {
    Object.defineProperty(this, key, {
      get() {
        return this._data[key]
      },
      set(newVal) {
        this._data[key] = newVal
      }
    })
  }
}

// 实例化Vue
const vm = new Vue({
  data: {
    name: "laowang",
    count: 1,
    course: {
      type: "easy",
      name: "vue"
    }
  }
})

console.log(vm);
